isLoggedIn()) $error="You are not logged in"; else if(!$auth->isSiteAccessible($site)) $error="You do not have permission to edit this page"; if($error) { header("Location: $engine/site.php?error=".rawurlencode($error)); exit; } } list($sec,$usec)=explode(microtime()," "); mt_srand($sec*$usec); function page_error($text,$title="Site does not exist",$ret="",$link="Try another site",$moretext="") { global $engine; echo "$title"; echo ""; echo "
"; showlogo(); echo "

$text

"; if(!strlen($ret)) $ret="$engine/index.php"; if($moretext) echo $moretext."
"; echo "$link"; echo ""; } $query="SELECT * FROM sites WHERE site='$site'"; $result=mysql_query($query) or erroranddie(); if(!($thissite=mysql_fetch_array($result))) { page_error("Sorry, that website does not exist."); exit; } if(isset($edit)) { $m=explode(":",$thissite['colmodel']); $colmodel_subtype=$m[1]; include("collibs/".$m[0]."/col.inc"); unset($m); } if(!$page) $page=$thissite["home"]; if(!$page) { page_error("Sorry, there is no home page set up.","No home page (".$thissite["name"].")"); exit; } $query="SELECT * FROM pages WHERE id='$page' AND site='$site'"; $result=mysql_query($query) or erroranddie(); if(!($thispage=mysql_fetch_object($result))) { if($page==$thissite["home"]) { page_error("Sorry, the home page set does not exist.","Invalid home page (".$thissite["name"].")"); exit; } else { page_error("Sorry, that page does not exist","Page missing (".$thissite["name"].")","$engine/page.php/$site/","Back to home page"); exit; } } if(isset($stopedit)) unset($edit); function askforpassword() { header("WWW-Authenticate: Basic realm=\"SurfYourOwn\""); header("HTTP/1.0 401 Unauthorised"); exit; } // Control access if(trim($thispage->access) && !isset($edit)) { $ok=0; if($PHP_AUTH_USER) { $a=array_flip(explode(",",$thispage->access)); if(!isset($a[$PHP_AUTH_USER])) askforpassword(); $query="SELECT id FROM pageusers WHERE site='$site' AND user='".addslashes($PHP_AUTH_USER)."' AND pass='".addslashes($PHP_AUTH_PW)."'"; if($res=mysql_query($query)) { if(mysql_num_rows($res)==0) askforpassword(); mysql_free_result($res); } } else { askforpassword(); } } if(isset($editwhat) && is_array($editwhat)) { $b=each($editwhat); $cedit=$b[0]; } if (isset($edit)) { if(isset($addnew)) { $query="INSERT INTO paragraphs SET pageid='$page'"; if($result=mysql_query($query)) { $edit=mysql_insert_id(); move_para($edit,$addnew,1); check_pos_valid($page); } else { error(); $edit=-1; } } if(isset($addcopy)) { $edit=$addcopy; $query="SELECT * FROM paragraphs WHERE id='$addcopy'"; if($result=mysql_query($query)) { // Generate query for copy $query="INSERT INTO paragraphs SET pageid='$page'"; if($row=mysql_fetch_array($result,MYSQL_ASSOC)) { while(list($key,$v)=each($row)) if($key!="pageid" && $key!="id") { $query.=",$key='".addslashes($v)."'"; } if($result=mysql_query($query)) { $edit=mysql_insert_id(); move_para($edit,$addcopy,1); check_pos_valid($page); } else error("copy"); } else error("copy"); } } if(isset($swap)) { swap($swap,$dir); check_pos_valid($page); } if(isset($reallydelete)) { $query="DELETE FROM paragraphs WHERE id='$edit'"; $result=mysql_query($query) or error(); $edit=-1; } if(isset($newpic)) { if($destname=uploadfile("newpic",$site,1)) $row['image']=$destname; } if(isset($update) && $edit!=-1) { // Munge some return parameters (mainly colours) if(isset($resetbg)) $row['bgcolor']=""; if(isset($resettext)) $row['textcolor']=""; if(isset($resethead)) $row['headcolor']=""; if(isset($bgcolor_x)) $row['bgcolor']=XYtoRGB($bgcolor_x,$bgcolor_y); if(isset($textcolor_x)) $row['textcolor']=XYtoRGB($textcolor_x,$textcolor_y); if(isset($headcolor_x)) $row['headcolor']=XYtoRGB($headcolor_x,$headcolor_y); if(isset($extlink)) { $row['linkon']=""; if(is_array($linkon)) while(list($k,$n)=each($linkon)) $row['linkon'].=$k; if($intlink) $row['linkto']=$intlink; else { if(strlen($extlink) && strtolower($extlink)!="http://") { if(!strstr($extlink,":")) $extlink="http://".$extlink; $row['linkto']="link:".$extlink; } else { unset($row['linkto']); $row['linkon']=""; } } } if($row['ondays']<=0) $row['ondays']=1; if(isset($row['onday']) && $row['onday']>0 && $row['onmonth']>0) { switch($row['onmonth']) { case 2: $m=28; if($row['onyear']>0) { if($row['onyear']%400==0) $m=29; else if($row['onyear']%100!=0 && $row['onyear']%4==0) $m=29; } break; case 4: case 6: case 9: case 11: $m=30; break; default: $m=31; break; } if($row['onday']>$m) $row['onday']=$m; } // Save paragraph settings update_paragraph($edit,$row); } if(isset($imageurl) && $edit>0) { $row['image']="link:$width:$height:$imageurl"; update_paragraph($edit,$row); } if(isset($updatepage) && $edit==-1) { // Munge some return parameters (mainly colours) $query="SELECT id FROM pages WHERE site='$site' AND title='".addslashes($row["title"])."' AND id!='$page'"; if($result=mysql_query($query)) { if(mysql_num_rows($result)>0) $err="Each page must have a different title"; else { if(isset($resetbg)) $row['bgcolor']=""; if(isset($resettext)) $row['textcolor']=""; if(isset($bgcolor_x)) $row['bgcolor']=XYtoRGB($bgcolor_x,$bgcolor_y); if(isset($textcolor_x)) $row['textcolor']=XYtoRGB($textcolor_x,$textcolor_y); // Save page settings if(isset($imageurl)) $row['bgimage']="link:$width:$height:$imageurl"; update_page($page,$row); } } // Update the current page too if(isset($row)) { while(list($key,$val)=each($row)) { $thispage->$key=$val; } } } if(isset($updatefont) && $edit == -1) { if (!$fc->getFont($_REQUEST['updatefont'])) $font = ''; else $font = $_REQUEST['updatefont']; $query = "UPDATE pages SET font='".addslashes($font)."' WHERE id='$page'"; mysql_query($query); $thispage->font = $font; } if(isset($updatefonthead) && $edit == -1) { if (!$fc->getFont($_REQUEST['updatefonthead'])) $font = ''; else $font = $_REQUEST['updatefonthead']; $query = "UPDATE pages SET fonthead='".addslashes($font)."' WHERE id='$page'"; mysql_query($query); $thispage->fonthead = $font; } } $bgcolor="ffffff"; $textcolor="000000"; $font = ""; $fonthead = ""; if($thissite["bgcolor"]) $bgcolor=$thissite["bgcolor"]; if($thissite["textcolor"]) $textcolor=$thissite["textcolor"]; if ($thissite["font"]) $font = $thissite["font"]; if ($thissite["fonthead"]) $fonthead = $thissite["fonthead"]; if($thispage->bgcolor) $bgcolor=$thispage->bgcolor; if($thispage->textcolor) $textcolor=$thispage->textcolor; if ($thispage->font) $font = $thispage->font; if ($thispage->fonthead) $fonthead = $thispage->fonthead; unset($bgimage); if($thissite["bgimage"]) $bgimage=$thissite["bgimage"]; if($thispage->bgimage) $bgimage=$thispage->bgimage; $buttonvalid=0; if(file_exists("$DOCUMENT_ROOT$path_buttons/".$thissite["scheme"]."/button.inc")) { include("$DOCUMENT_ROOT$path_buttons/".$thissite["scheme"]."/button.inc"); include("$DOCUMENT_ROOT$path_buttons/".$thissite["scheme"]."/def.inc"); $b=@unserialize($thissite["buttons"]); if(is_array($b)) { if(count($b)) $buttonvalid=1; } } // Update hit counter if(!isset($edit)) { $query="UPDATE pages SET hits=hits+1 WHERE id='$page'"; mysql_query($query); } // ********************* Start of real page // At this point we should have global information set up echo "$thispage->title (".$thissite["name"].")"; if (isset($edit)) echo "\n"; echo "\n"; echo "\n"; echo "\n"; if($err) echo "

$err

"; if($edit) { echo "<<< Back to Site Management
"; } if($buttonvalid && (!isset($edit) || $edit=="view")) { $vert=button_vertical($thissite); if($vert) echo "
\n"; else echo "\n
"; display_buttons($page,$thissite,$edit); if($vert) echo ""; else echo "
"; } ?> cellpadding=>
\n"; ?>